package net.jcip.examples.chapter6.thread.ExecutorService.ExecutorServiceImpl;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

/**
 * ✅ 特点
 * 	•	无界线程池，按需创建线程；
 * 	•	空闲线程 60s 后自动回收；
 * 	•	使用 SynchronousQueue 直接交接任务；
 * 	•	适合 大量短生命周期的异步小任务。
 *
 * ⚠️ 注意
 * 	•	不适合任务量巨大或持续增长的场景（可能创建过多线程导致 OOM）。
 *
 * 📌 使用场景
 * 	•	并发量不确定、瞬时高峰请求；
 * 	•	异步日志、HTTP请求转发等。
 */
public class CachedThreadPoolTest {


    public static void main(String[] args) {
        ExecutorService executor = Executors.newCachedThreadPool();

        for (int i = 0; i < 20; i++) {
            int taskId = i;
            executor.submit(() -> {
                System.out.println(Thread.currentThread().getName() + " 执行任务 " + taskId);
            });
        }

        executor.shutdown();
    }





}
